/** 模型模态类型 */
/**
 * 模型模态类型
 */
export type ModelModality = 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';


/** 模型状态 */
/**
 * 模型状态
 */
export type ModelStatus = 'active' | 'inactive' | 'deprecated';


export interface LLMModelBase {
  /**
   * 模型显示名称
   */
  name: string;
  /**
   * 模型ID
   */
  model_id: string;
  /**
   * 模型提供商
   */
  provider: string;
  /**
   * 模型模态类型
   */
  modality: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
  /**
   * API基础URL
   */
  base_url: string;
  /**
   * API密钥
   */
  api_key: string;
  /**
   * 模型状态
   */
  status?: 'active' | 'inactive' | 'deprecated';
  /**
   * 模型描述
   */
  description?: string;
  /**
   * 模型配置参数
   */
  config?: {
    [k: string]: unknown;
  };
  [k: string]: unknown;
}


/** 创建LLM模型的请求 */
/**
 * 创建LLM模型的请求
 */
export type LLMModelCreateRequest = {
  /**
   * 模型显示名称
   */
  name: string;
  /**
   * 模型ID
   */
  model_id: string;
  /**
   * 模型提供商
   */
  provider: string;
  /**
   * 模型模态类型
   */
  modality: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
  /**
   * API基础URL
   */
  base_url: string;
  /**
   * API密钥
   */
  api_key: string;
  /**
   * 模型状态
   */
  status?: 'active' | 'inactive' | 'deprecated';
  /**
   * 模型描述
   */
  description?: string;
  /**
   * 模型配置参数
   */
  config?: {
    [k: string]: unknown;
  };
  [k: string]: unknown;
};


/** 更新LLM模型的请求 */
/**
 * 更新LLM模型的请求
 */
export interface LLMModelUpdateRequest {
  /**
   * 模型显示名称
   */
  name?: string;
  /**
   * 模型提供商
   */
  provider?: string;
  /**
   * 模型模态类型
   */
  modality?: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
  /**
   * API基础URL
   */
  base_url?: string;
  /**
   * API密钥
   */
  api_key?: string;
  /**
   * 模型状态
   */
  status?: 'active' | 'inactive' | 'deprecated';
  /**
   * 模型描述
   */
  description?: string;
  /**
   * 模型配置参数
   */
  config?: {
    [k: string]: unknown;
  };
  [k: string]: unknown;
}


/** LLM模型的响应 */
/**
 * LLM模型的响应
 */
export type LLMModelResponse = {
  /**
   * 模型显示名称
   */
  name: string;
  /**
   * 模型ID
   */
  model_id: string;
  /**
   * 模型提供商
   */
  provider: string;
  /**
   * 模型模态类型
   */
  modality: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
  /**
   * API基础URL
   */
  base_url: string;
  /**
   * API密钥
   */
  api_key: string;
  /**
   * 模型状态
   */
  status?: 'active' | 'inactive' | 'deprecated';
  /**
   * 模型描述
   */
  description?: string;
  /**
   * 模型配置参数
   */
  config?: {
    [k: string]: unknown;
  };
  [k: string]: unknown;
} & {
  /**
   * 模型ID
   */
  id: number;
  /**
   * 创建时间
   */
  created_at: string;
  /**
   * 更新时间
   */
  updated_at: string;
  /**
   * 创建者ID
   */
  created_by?: string;
  /**
   * 更新者ID
   */
  updated_by?: string;
  [k: string]: unknown;
};


/** LLM模型列表的响应 */
/**
 * LLM模型列表的响应
 */
export interface LLMModelListResponse {
  /**
   * 模型列表
   */
  items: ({
    /**
     * 模型显示名称
     */
    name: string;
    /**
     * 模型ID
     */
    model_id: string;
    /**
     * 模型提供商
     */
    provider: string;
    /**
     * 模型模态类型
     */
    modality: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
    /**
     * API基础URL
     */
    base_url: string;
    /**
     * API密钥
     */
    api_key: string;
    /**
     * 模型状态
     */
    status?: 'active' | 'inactive' | 'deprecated';
    /**
     * 模型描述
     */
    description?: string;
    /**
     * 模型配置参数
     */
    config?: {
      [k: string]: unknown;
    };
    [k: string]: unknown;
  } & {
    /**
     * 模型ID
     */
    id: number;
    /**
     * 创建时间
     */
    created_at: string;
    /**
     * 更新时间
     */
    updated_at: string;
    /**
     * 创建者ID
     */
    created_by?: string;
    /**
     * 更新者ID
     */
    updated_by?: string;
    [k: string]: unknown;
  })[];
  /**
   * 总记录数
   */
  total: number;
  /**
   * 当前页码
   */
  page: number;
  /**
   * 每页记录数
   */
  size: number;
  /**
   * 总页数
   */
  pages: number;
  [k: string]: unknown;
}


/** LLM模型筛选条件 */
/**
 * LLM模型筛选条件
 */
export interface LLMModelFilterRequest {
  /**
   * 按提供商筛选
   */
  provider?: string;
  /**
   * 按模态类型筛选
   */
  modality?: 'text_only' | 'text_image' | 'text_video' | 'text_audio' | 'multimodal';
  /**
   * 按状态筛选
   */
  status?: 'active' | 'inactive' | 'deprecated';
  /**
   * 搜索关键词（按名称或描述）
   */
  search?: string;
  [k: string]: unknown;
}


/** LLM模型分页参数 */
/**
 * LLM模型分页参数
 */
export interface LLMModelPaginationRequest {
  /**
   * 跳过的记录数
   */
  skip?: number;
  /**
   * 返回的记录数
   */
  limit?: number;
  /**
   * 排序字段
   */
  sort_by?: 'name' | 'created_at' | 'updated_at';
  /**
   * 排序顺序
   */
  sort_order?: 'asc' | 'desc';
  [k: string]: unknown;
}


export interface MessageResponse {
  message: string;
  [k: string]: unknown;
}
